package com.lfz.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lfz.demo.common.enums.CensusTimeEnum;
import com.lfz.demo.utils.CensusTimeEnumConverter;
import lombok.Data;

import javax.persistence.Convert;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Date;

/**
 * @author lfz
 * @date 2025/2/24 18:08
 *
 * ECharts 地图需要的数据格式是 {name: '省份', value: 数值}
 * 在实体类中通过 @JsonProperty 注解直接标记字段别名
 */
@Data
@Entity
@TableName("china_population")
public class ChinaPopulation implements Serializable {
    @Id
    @TableId(type = IdType.AUTO) // 关键配置：自增策略
    private Integer id;
    private String cityName;    // 字段名与数据库一致（驼峰命名） 城市名称
    private Integer population; // 常住人口 （万人）
    private Integer birthNum;   // 出生人数 （万人）
    private Integer deadNum;    // 死亡人数 （万人）
    private Double sexRatio; // 数值类型，匹配数据库 DECIMAL    // 性别比（ 女 = 100 ）
    private Date updateTime;    // 统计截止时间
    @Convert(converter = CensusTimeEnumConverter.class) // 使用自定义转换器
    private CensusTimeEnum censusTime;  // 普查时间描述 使用枚举类
}
